package java6681.lesson14;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author Junichiro
 * @description TCP通信的基本流程
 * @date 2021-06-18 15:19
 **/
//java java6681.lesson14.BaseServer6681
 //javac -encoding UTF-8 java6681/lesson14/BaseServer6681.java
public class BaseServer6681 {
    public static void main(String[] args) throws IOException {
        //（1）创建ServerSocket对象，并绑定端口号
        ServerSocket ss = new ServerSocket(8888);

        //（2）调用accept()方法监听是否有客户端发送连接请求
        //（3）当接收到客户端的连接请求，建立连接后，得到与该客户端通信的Socket对象
        Socket s = ss.accept();

        //（4）接收信息：从Socket对象的输入流中接收客户端传来的信息，显示在控制台上
        InputStream is = s.getInputStream();
        byte[] bys = new byte[1024];
        int len = is.read(bys);
        String server = new String(bys, 0, len);
        System.out.println("等待客户小张电话...");
        System.out.println(server);

        //（5）发送信息：通过Socket对象的输出流向客户端发送信息
        OutputStream os = s.getOutputStream();
        os.write("很高兴为您服务...工号：张舒婷---212006681".getBytes());

        //（6）关闭
        s.close();
    }
}
